using UniversalAdmin.Application.DTOs;
using UniversalAdmin.Domain.Entities;

namespace UniversalAdmin.Application.Services;

public interface IChatHistoryService
{
    Task<ChatHistoryDto> CreateChatHistoryAsync(CreateChatHistoryDto dto);
    Task<ChatHistoryDto?> GetChatHistoryByIdAsync(Guid id);
    Task<PagedResultDto<ChatHistoryDto>> GetChatHistoriesByUserIdAsync(Guid userId, int page = 1, int pageSize = 10);
    Task<IEnumerable<ChatHistoryDto>> GetChatHistoriesBySessionIdAsync(string sessionId);
    Task<ChatHistoryDto?> GetLatestChatHistoryBySessionIdAsync(string sessionId);
    Task<IEnumerable<ChatHistoryDto>> SearchChatHistoriesAsync(Guid userId, string keyword);
    Task<bool> DeleteChatHistoryByIdAsync(Guid id);
    Task<bool> DeleteChatHistoriesBySessionIdAsync(string sessionId);
    Task<int> GetSessionCountByUserIdAsync(Guid userId);
}